Bit packing and unpacking instructions are used in many video, audio and baseband applications. However, existing ways to extract and pack the bits take many core cycles of a processor to complete. Manipulation of the data is commonly done in registers or memory locations. Therefore, many processor cycles are used to check how many unused bits are left in the register/memory location, fetch new bits if room is available, and treat boundary crossing conditions.